#pragma once

#ifdef VIDEORECODER_EXPORTS
#define REC_API __declspec(dllexport)
#else
#define REC_API __declspec(dllimport)
#endif

#ifndef PURE
#define PURE =0
#endif

struct IVideoRecoder{
	virtual void startMicrophone() PURE;

	virtual int OnStartCapturing() PURE;

	virtual int OnStopCapturing() PURE;

	virtual int OnPauseResumeCapturing() PURE;

	virtual void SetAudioInput(int jparam) PURE;

	virtual void SetAudioVolume(int jparam) PURE;

	virtual void SetAudioFrequency(int jparam) PURE;

	virtual void SetAudioBites(int jparam) PURE;

	virtual void SetAudioType(int jparam) PURE;

	virtual void SetAudioFormat(int jparam) PURE;

	virtual void SetAudioIS(int jparam) PURE;

	virtual void SetVideoWidth(int jparam) PURE;

	virtual void SetVideoHeight(int jparam) PURE;

	virtual void SetVideoFrameRates(int jparam) PURE;

	virtual void SetVideoCodec(int jparam) PURE;
};

#if defined(__cplusplus)
EXTERN_C{
#endif
REC_API IVideoRecoder * Recoder_Create();
REC_API void Recoder_Destroy(IVideoRecoder * pRecoder);
#if defined(__cplusplus)
}
#endif